This invention relates to configuring devices in a computer system.
Special purpose integrated circuit chips, for example, typically cannot perform their normal functions until they are configured, which is usually done when the computer system is powered up or reset. Configuration information is usually stored on the device itself in non-volatile memory. For so-called programmable logic devices (PLD""s) and field programmable gate arrays (FPGA""s), the configuration information may be stored in a non-volatile memory located off the device. By changing the configuration information, the functions of the PLD""s and FPGA""s may be changed.
In some computer systems, the chips that need to be configured are part of a chipset and a local channel is provided to enable communication between the chips in a way that does not directly use and is not disruptive of the operation of the main system bus. The local channel can be called a local bus.
Typically the chips within the computer system must be customized to particular tasks, that is, configured to function as desired. One expensive way to configure a chip is to alter the chip hardware during construction, using, for example, bond pads or pin straps.
In another approach, the configuration is done based on data sent to the chip (for example, a PLD or an FPGA) on the system bus, e.g., during a reset cycle. This approach has the advantage that the chip may be customized to a particular application without hardwiring. In so-called xe2x80x9cself-configuringxe2x80x9d chips, the configuration instructions are kept in the chip""s own non-volatile memory or non-volatile storage (NVS). Non-volatile storage is able to retain data in the absence of main power. There are many kinds of non-volatile memory, such as read-only memory (ROM), programmable read-only memory (PROM) and erasable programmable read-only memory (EPROM). Some types of battery-backed random-access memory (RAM) also may be considered to be non-volatile.
If a chip is not self-configuring, it receives its configuration instructions over a communications channel or bus from an external source. Configuration activity occurring on the bus may be referred to as the xe2x80x9cconfiguration bus cycle.xe2x80x9d
In general, in one aspect, the invention features storing configuration data for a target device in non-volatile memory of a second self-configuring device. The target device and the second self-configuring device are a part of a computer system. The invention further features receiving computer system information prompting a reconfiguration of the target device, and in response to the information, reconfiguring the target device using the configuration data.